Upgrading In-Place
Now that you’ve seen how to
migrate your databases to SQL Server 2008 by following the side-by-side
migration path, let’s look at the alternative: upgrading in-place.
Unlike a side-by-side install, an in-place upgrade permanently modifies
the SQL Server components, data, and metadata objects, and there is no
going back. You will likely be more comfortable taking the side-by-side
migration path than doing an in-place upgrade, unless a side-by-side migration
is not possible because of disk space limitations, you have very few
SQL Server features in use, or you are fairly confident about the
potential success of the upgrade process because you’ve done extensive
issue resolution with the assistance of the Upgrade Assistant.
If you are performing an in-place upgrade of the Database Engine, it is strongly recommended that you first do the following:
- Create full, verified backups of your existing SQL Server databases.
- Run the appropriate DBCC consistency checks (for example, DBCC CHECKDB and DBCC CHECKFILEGROUP).
- Make sure the system databases on your pre-2008 instances (for example, master, msdb, tempdb, and model) are all set to auto-grow.
- Disable any startup stored procedures that get kicked off when the SQL Server service starts.
- Disable database replication and empty the replication log.
After you perform all these actions, you are ready to begin the upgrade process.
Upgrading the Database Engine
You perform an in-place
upgrade by running the SQL Server Installation Center. On the
Installation page, you can invoke the Upgrade Wizard to upgrade from SQL
Server 2000, 2005, or 2008 (see Figure 6).
After first running the Setup Rules check and installing the Setup
Support Files, the Upgrade Wizard essentially runs the installation
process. The key
differences between running a new install versus an upgrade is that
during the upgrade process, you choose an existing default or named
instance on the Select Instance screen (see Figure 7).
After selecting the instance to
upgrade, you see the Feature Selection page. The features to be
upgraded are preselected. You cannot change the features to be upgraded,
and you cannot add features during an upgrade operation. To add
features, you need to run the Installation Center again after the
upgrade operation is complete.
After making choices on the
Features Selection page, step through the Instance Configuration, Disk
Space Requirements, and Server Configuration screens, making changes as
necessary. For example, authentication and login information are carried
forward from the previous instance of SQL Server. You can assign the
same login account to all SQL Server services, or you can configure each
service account individually. You can also specify whether services
start automatically, are started manually, or are disabled.
Next, you are presented
with options for upgrading your full-text catalogs. In SQL Server 2005
and earlier versions, each full-text index resided in a full-text
catalog that belonged to its own filegroup and was treated as a database
file. In SQL Server 2008, a full-text catalog is a logical concept that
refers to a group of full-text indexes and is no longer treated as a
separate database file with a physical path. However, during upgrade of
any full-text catalog, a
new filegroup is still created on the same disk to maintain the
pre-upgrade disk I/O behavior. If the old full-text catalog path is
invalid, though, the upgrade places the full-text index in the same
filegroup as the base table or in the primary filegroup if the table is
partitioned.
Three options are available for upgrading your existing full-text catalogs:
Import—
Typically, import is the fastest method of upgrading, but an imported
full-text catalog does not use the new and enhanced word breakers
introduced in SQL Server 2008, so you might want to rebuild your
full-text catalogs eventually if not during the upgrade.
Rebuild— This method uses the new SQL Server 2008 word breakers, but rebuilding indexes can take awhile.
Reset—
When you use this method, SQL Server 2005 full-text catalog files are
removed, but the metadata for full-text catalogs and full-text indexes
is retained. The catalog remains empty until you manually issue a full
population after the upgrade completes.
After choosing your full-text
upgrade option, you next choose your Error Reporting options, and then
the Upgrade Rules check is run to validate your system configuration
with the options and features chosen during the upgrade process. If all
the rules pass, you can review the upgrade operation on the Ready to
Upgrade page, which also displays the path to the upgrade configuration
file . If
everything looks okay, click Upgrade to begin the upgrade process. The
upgrade process automatically upgrades all objects that are common to
all databases, including the following:
Tables, views, indexes, and constraints
Stored procedures, functions, and triggers
User-defined types, rules, and defaults
Logins, users, and permissions
Database diagrams
You can monitor the
upgrade progress on the Upgrade Progress screen. Depending on your
hardware configuration and the features to be upgraded, the upgrade
operation can take from approximately 30 minutes to several hours. The
databases on the instance being upgraded remain unavailable until the
upgrade is complete.
When the upgrade
finishes, it displays the upgrade status of each component and also
provides the location of the upgrade log. A system restart may be
required in some cases if any upgraded components were in use during the
upgrade process.
When
your upgrade of the Database Engine is complete, it is recommended that
you perform the following on all databases (also recommended for
side-by-side migration):
- Repopulate your full-text catalogs if you chose not to rebuild them during the upgrade.
- Run the sp_updatestats system stored procedure to update statistics.
- Reregister your server in SSMS.
The SQL Server 2008 Upgrade Matrix
No software upgrade section
would be complete without an illustrative table showing the versions and
editions of SQL Server for which the upgrade methods described thus far
are supported. They are presented in Table 1.
Table 1. Supported Upgrade Paths to SQL Server 2008 and 2008 R2
Previous SQL Server Edition | Supported Upgraded Edition |
---|
SQL Server 2000 Enterprise Edition SP4 | SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Enterprise Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2000 IA64 Enterprise Edition SP4 | SQL Server 2008 IA64 Enterprise Edition
SQL Server 2008 R2 IA64 Enterprise Edition
SQL Server 2008 R2 IA64 Datacenter Edition |
SQL Server 2000 Developer Edition SP4 | SQL Server 2008 Developer Edition
SQL Server 2008 R2 Developer Edition |
SQL Server 2000 IA64 Developer Edition SP4 | SQL Server 2008 IA64 Developer Edition
SQL Server 2008 IA64 R2 Developer Edition |
SQL Server 2000 Standard Edition SP4 | SQL Server 2008 Standard Edition
SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition |
SQL Server 2000 Workgroup Edition SP4 | SQL Server 2008 Workgroup Edition
SQL Server 2008 Standard Edition
SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Workgroup Edition
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition |
SQL Server 2000 Personal Edition SP4 | Not supported |
SQL Server 2000 Evaluation Edition | Not supported |
SQL Server 2000 MSDE 2000 SP4 | SQL Server 2008 Express
SQL Server 2008 Express with Tools
SQL Server 2008 Express with Advanced Services
SQL Server 2008 Workgroup
SQL Server 2008 R2 Express
SQL Server 2008 R2 Express with Tools
SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Workgroup |
SQL Server 2005 Enterprise Edition SP2 | SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Enterprise Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2005 IA64 Enterprise Edition SP2 | SQL Server 2008 IA64 Enterprise Edition
SQL Server 2008 R2 IA64 Enterprise Edition
SQL Server 2008 R2 IA64 Datacenter Edition |
SQL Server 2005 X64 Enterprise Edition SP2 | SQL Server 2008 X64 Enterprise Edition
SQL Server 2008 R2 X64 Enterprise Edition
SQL Server 2008 R2 X64 Datacenter Edition |
SQL Server 2005 Developer Edition SP2 | SQL Server 2008 Developer Edition
SQL Server 2008 R2 Developer Edition |
SQL Server 2005 IA64 Developer Edition SP2 | SQL Server 2008 IA64 Developer Edition
SQL Server 2008 IA64 R2 Developer Edition |
SQL Server 2005 X64 Developer Edition SP2 | SQL Server 2008 X64 Developer Edition
SQL Server 2008 X64 R2 Developer Edition |
SQL Server 2005 Standard Edition SP2 | SQL Server 2008 Standard Edition
SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition |
SQL Server 2005 IA64 Standard Edition SP2 | SQL Server 2008 IA64 Enterprise Edition
SQL Server 2008 R2 IA64 Enterprise Edition |
SQL Server 2005 X64 Standard Edition SP2 | SQL Server 2008 X64 Standard Edition
SQL Server 2008 R2 X64Standard Edition
SQL Server 2008 X64 Enterprise Edition
SQL Server 2008 R2 X64 Enterprise Edition |
SQL Server 2005 Workgroup Edition SP2 | SQL Server 2008 Workgroup Edition
SQL Server 2008 Standard Edition
SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Workgroup Edition
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition |
SQL Server 2005 Personal Edition SP2 | Not supported |
SQL Server 2005 Evaluation Edition | Not supported |
SQL Server 2005 Express SP2 | SQL Server 2008 Express
SQL Server 2008 Express with Tools
SQL Server 2008 Express with Advanced Services
SQL Server 2008 Workgroup
SQL Server 2008 Standard Edition
SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Express
SQL Server 2008 R2 Express with Tools
SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Workgroup
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition |
SQL Server 2005 Express SP2 Advanced | SQL Server 2008 Express with Advanced Services
SQL Server 2008 Workgroup
SQL Server 2008 Standard Edition
SQL Server 2008 Enterprise Edition
SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Workgroup
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition |
SQL Server 2008 Enterprise Edition | SQL Server 2008 R2 Enterprise Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2008 IA64 Enterprise Edition | SQL Server 2008 R2 IA64 Enterprise Edition
SQL Server 2008 R2 IA64 Datacenter Edition |
SQL Server 2008 X64 Enterprise Edition | SQL Server 2008 R2 X64 Enterprise Edition
SQL Server 2008 R2 X64 Datacenter Edition |
SQL Server 2008 Developer Edition | SQL Server 2008 R2 Developer Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2008 IA64 Developer Edition | SQL Server 2008 R2 IA64 Developer Edition
SQL Server 2008 R2 IA64 Datacenter Edition |
SQL Server 2008 X64 Developer Edition | SQL Server 2008 R2 X64 Developer Edition
SQL Server 2008 R2 X64 Datacenter Edition |
SQL Server 2008 Standard Edition | SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2008 X64 Standard Edition | SQL Server 2008 R2 X64Standard Edition
SQL Server 2008 R2 X64 Enterprise Edition
SQL Server 2008 R2 X64 Datacenter Edition |
SQL Server 2008 Workgroup Edition | SQL Server 2008 R2 Workgroup Edition
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2008 X64 Workgroup Edition | SQL Server 2008 R2 X64 Workgroup Edition
SQL Server 2008 R2 X64 Standard Edition
SQL Server 2008 R2 X64 Enterprise Edition
SQL Server 2008 R2 X64 Datacenter Edition |
SQL Server 2008 Web Edition | SQL Server 2008 R2 Web Edition
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition |
SQL Server 2008 X64 Web Edition | SQL Server 2008 R2 X64 Web Edition
SQL Server 2008 R2 X64 Standard Edition
SQL Server 2008 R2 X64 Enterprise Edition |
SQL Server 2008 Express | SQL Server 2008 R2 Express
SQL Server 2008 R2 Express with Tools
SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Workgroup
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2008 Express Advanced | SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Workgroup
SQL Server 2008 R2 Standard Edition
SQL Server 2008 R2 Enterprise Edition
SQL Server 2008 R2 Datacenter Edition |
SQL Server 2008 Evaluation Edition | Not supported |
Note
As you see in Table 1,
direct upgrades from versions prior to SQL Server 2000 SP4 or SQL
Server 2005 versions prior to SP2 are not supported.